5
תגובות
בעיה עם pdo
פתח
nikolai
,
הבעיה שלי כשאני מנסה להשתמש בפונקציה זה מודיע לי שהוא לא מצליח לגשת אל $dbh ומקודם זה עבד.
תודה על העזרה
תודה על העזרה
<?php
try {
require 'config.php';
$dbh = new PDO("mysql:host=".$db['host'].";dbname=".$db['name'].";charset=UTF-8",$db['username'],$db['password']);
}
catch(PDOException $e)
{
$error = "ההתחברות נכשלה";
exit;
}
function getInfo($field)
{
try {
$getInfo = $dbh->query('SELECT * FROM message') or die();
while($row = $getInfo->fetch(PDO::FETCH_ASSOC))
{
return $row[$field];
}
} catch (PDOException $e){
$error = "ההתחברות נכשלה";
exit;
}
}
try {
require 'config.php';
$dbh = new PDO("mysql:host=".$db['host'].";dbname=".$db['name'].";charset=UTF-8",$db['username'],$db['password']);
}
catch(PDOException $e)
{
$error = "ההתחברות נכשלה";
exit;
}
function getInfo($field)
{
try {
$getInfo = $dbh->query('SELECT * FROM message') or die();
while($row = $getInfo->fetch(PDO::FETCH_ASSOC))
{
return $row[$field];
}
} catch (PDOException $e){
$error = "ההתחברות נכשלה";
exit;
}
}
5 תשובות
בלי להסתכל יותר מדי, איך אתה ניגש אל $dbh בתוך פונקציה? לפונקציות יש Scope משלהם. אם המשתנה הזה גלובלי, אתה יכול לעשות משהו כזה:
function foo()
{
$dbh = $GLOBALS['dbh']
}
{
$dbh = $GLOBALS['dbh']
}
הערה נוספת: exit ו-die הם פרקטיקה גרועה.
1. זה יכול להרוס לך את כל המבנה של הדף.
2. משתמשים אוהבים דפים יפים ומסודרים, ולא הודעות שגיאה סתם כך.
המקרה שלך הוא כמו המקרה הבא:
$hello = 'hello';
function afunc()
{
echo $hello;
}
afunc();
function afunc()
{
echo $hello;
}
afunc();
המשתנה dbh בכלל לא קיים בתוך הפונקציה הזו, כמו שהמשתנה hello לא קיים בפונקציה שבדוגמה.
הפרתון בשבילך יכול להיות הסינגלטון
ענה
iiddaannyy
ב
22 לפברואר 2013
#
http://phpguide.co.il/phplive?code=672